import type { CrudAddBtnPropsType } from '../XCrudAddBtn'
import type { CrudDelBtnPropsType } from '../XCrudDelBtn'
import type { CascadeBtnPropsType } from '../XCascadeBtn'
import type { ExpandBtnPropsType } from '../XExpandBtn'
import type { RefreshBtnPropsType } from '../XRefreshBtn'
import type { CrudColumns, CrudColSettingPropsType } from '../XCrudColSetting'

export type CrudOperationsPropsType = {
  useAdd?: boolean
  add?: () => void
  addBtnProps?: Omit<CrudAddBtnPropsType, 'click'>
  useDel?: boolean
  del?: () => void
  delBtnProps?: Omit<CrudDelBtnPropsType, 'click'>
  useCascade?: boolean
  cascade?: boolean
  'onUpdate:cascade'?: (cascade: boolean) => void
  cascadeBtnProps?: Omit<CascadeBtnPropsType, 'cascade' | 'onUpdate:cascade'>
  useExpand?: boolean
  expand?: () => void
  retract?: () => void
  expandBtnProps?: Omit<ExpandBtnPropsType, 'expand' |'retract'>
  useRefresh?: boolean
  refresh?: () => void
  refreshBtnProps?: Omit<RefreshBtnPropsType, 'click'>
  useColSetting?: boolean
  columns?: CrudColumns
  'onUpdate:columns'?: (columns: CrudColumns) => void
  useBuiltInSelectColumn?: boolean
  colSettingProps?: Omit<CrudColSettingPropsType, 'columns' | 'onUpdate:columns' | 'useBuiltInSelectColumn'>
}
